package com.aabte.design2.structural.flyweight;

/**
 * 情景对象包含树状态的外在部分。程序中可以创建数十亿个此类对象，因为它们
 * 体积很小：仅有两个整型坐标和一个引用成员变量。
 *
 * @author Daniel
 * @version 1.0
 * @date 2020/5/3
 */
public class Tree {
    /**
     * 外部状态
     */
    private int x;
    private int y;

    /**
     * 内部状态
     */
    private TreeType treeType;

    public Tree(int x, int y, TreeType treeType) {
        this.x = x;
        this.y = y;
        this.treeType = treeType;
    }

    public void draw() {
        treeType.draw(this.x, this.y);
    }
}
